#include <stdio.h>
#include <string.h>

int main()
{
#if 0
    /* 1.指针类型(有*号) 占用内存大小为8.*/

    /* 避免野指针 */
    char *ptr = NULL; //*是指针运算符，用来获取所指地址的具体内容。ptr是指针变量，存放着地址。任何变量都要初始化。
    int len = sizeof(ptr);
    printf("len:%d\n", len);  

    char *ptr1 = "hello world";
    len = sizeof(ptr1);
    printf("len:%d\n", len);  

    int a = 5;
    int *pa = &a;
    len = sizeof(pa);
    printf("len:%d\n", len);

    short b = 10;
    short *pb = &b;
    len = sizeof(pb);
    printf("len:%d\n", len);
#endif

#if 1
    /* 字符串指针的赋值*/
    char *ptr = "hello world";
/*
    内存:
        非法地址0~4字节， 
        全局区
        堆区：很大,跟内存条相关
        栈区：非常小 8MB
        在函数里面的所有普通变量全部在栈区
*/

    /* 字符串操作函数1：strlen */
    //implicit declaration of function 'strlen'
    int len = strlen(ptr);
    printf("len:%d\n",len);

#endif

#if 0
    char buffer[] = "hello world";

    for(int idx = 0; idx < sizeof(buffer); idx++)
    {
        printf("buffer[%d] = %c\n", idx, buffer[idx]);
    }

#endif

    return 0;
}
